package com.yeban.javase.day03.test02;

/**
 * @Desc TODO
 * @Author yeban
 * @Date 2025/10/11
 */
/*
2.假如我们开发一个系统时需要对员工进行建模，员工包含3个属性：姓名、工号以及工资。经理也是员工，除了含有员工的属性外，另外还有一个分红的属性。
请设计出员工类和经理类，要求类中提供必要的方法进行属性访问。
员工类: name  id  pay  抽象的addSalary()方法
经理类：继承员工类，并有自己特有的bonus分红属性，实现自己的addSalary()涨薪方法
*/
public abstract class Employee {
    private String name;
    private int num;
    private double pay;

    public Employee() {
    }

    public Employee(String name, int num, double pay) {
        this.name = name;
        this.num = num;
        this.pay = pay;
    }

    public abstract void addSalary(double salary);
    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return num
     */
    public int getNum() {
        return num;
    }

    /**
     * 设置
     * @param num
     */
    public void setNum(int num) {
        this.num = num;
    }

    /**
     * 获取
     * @return pay
     */
    public double getPay() {
        return pay;
    }

    /**
     * 设置
     * @param pay
     */
    public void setPay(double pay) {
        this.pay = pay;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "name='" + name + '\'' +
                ", num=" + num +
                ", pay=" + pay +
                '}';
    }
}
